//=======================================Copyright(c)===========================================
// 								  深圳易马达科技有限公司
//---------------------------------------文件信息----------------------------------------------
//文件名   	: SocCalcHook.h
//创建人  	: Handry
//创建日期	:
//描述	    : SOC 辅助计算模块头文件
//-----------------------------------------------当前版本修订----------------------------------
//修改人   	:
//版本	    :
//修改日期	:
//描述	    :
//=============================================================================================
#ifndef _SOCCALCHOOK_H
#define _SOCCALCHOOK_H

//=============================================================================================
//包含头文件
//=============================================================================================
#include "BSPTypedef.h"
#include "SocPointData.h"

//=============================================================================================
//声明接口函数
//=============================================================================================
//=============================================================================================
//函数名称	: u8 SOCSearchAscendingTabs8(s8 data, const s8 *array, u8 len)
//输入参数	: data:查找的数据 array:数组基地址 len:数组长度 
//输出参数	: 查找到数据的下标
//函数功能	: 二份法查找s8升序数组
//注意事项	: 取高端值,注意len为1时
//=============================================================================================
u8 SOCSearchAscendingTabs8(s8 data, const s8 *array, u8 len);

//=============================================================================================
//函数名称	: u8 SOCSearchAscendingTabs16(s16 value, const s16 * array, u8 len)
//输入参数	: value:查找的数据 array:数组基地址 len:数组长度 
//输出参数	: 得到的下标
//函数功能	: 从s16升序数组中查找数据对应的下标
//注意事项	: 取高端值 
//=============================================================================================
u8 SOCSearchAscendingTabs16(s16 value, const s16 * array, u8 len);

//=============================================================================================
//函数名称	: u8 SOCSearchAscendingOCVPointTabs(s16 temp, const t_OCVPoint * array, u8 len)
//输入参数	: temp:查找的温度 array:t_OCVPoint数组基地址 len:数组长度 
//输出参数	: 得到的下标
//函数功能	: 从t_OCVPoint的点温度数据查找对应温度的OCV点下标，升序
//注意事项	: 取高端值 
//=============================================================================================
u8 SOCSearchAscendingOCVPointTabs(s16 temp, const t_OCVPoint * array, u8 len);

//=============================================================================================
//函数名称	: u32 SOCDataBCD2DEC(u32 bcd)  
//输入参数	: bcd:需要转换成DEC数的数据
//输出参数	: 转换后的DEC数
//函数功能	: 将BCD数据转换成DEC数
//注意事项	: 
//=============================================================================================
u32 SOCDataBCD2DEC(u32 bcd);

//=============================================================================================
//函数名称	: u32 SOCDataDEC2BCD(u32 dec)  
//输入参数	: dec:需要转换成BCD数的数据
//输出参数	: 转换后的BCD数
//函数功能	: 将DEC数据转换成BCD数
//注意事项	: 
//=============================================================================================
u32 SOCDataDEC2BCD(u32 dec);

#endif

/*****************************************end of SocCalcHook.h*****************************************/
